맨위로가기

자바 EE 커넥터 아키텍처

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

자바 EE 커넥터 아키텍처(JCA)는 자바 EE 애플리케이션 서버와 엔터프라이즈 정보 시스템(EIS) 간의 표준 연결 방식을 정의하는 프레임워크이다. JCA는 EIS와의 연동을 위한 표준 인터페이스를 제공하여, 각 벤더의 EIS 및 WAS마다 별도의 인터페이스를 구현해야 했던 문제를 해결하고, 애플리케이션의 이식성과 확장성을 향상시킨다. JCA는 Java EE의 핵심 구성 요소 중 하나로, 연결 관리, 트랜잭션 관리, 보안 관리 등의 시스템 계약을 정의하며, JCA 1.5부터는 수명 주기 관리, 작업 관리, 트랜잭션 유입 관리, 메시지 유입 관리 등의 기능이 추가되었다. JCA는 다양한 EIS, 예를 들어 지벨, SAP, 오라클 애플리케이션즈 등과의 통합을 지원한다.

2. 배경

JCA는 ERP나 레거시 정보 시스템 등을 포함하는 비 WAS 환경 서비스(이하 EIS; Enterprise Information System)와의 연동을 위해 정의된 표준 프레임 워크이다. JCA 이전까지는 이들 EIS와의 연동을 위해서 각 벤더의 EIS 및 WAS마다 별도의 인터페이스를 구현하는 커스텀 드라이버를 구현하여 사용했으므로 특정 제품간에 연동 자체가 불가능 해지는 것을 제외하더라도 각각의 드라이버에 따라 다양한 인터페이스와 개발 방식을 따라야 하는 문제가 있었다.

이른바 N * M 문제라고 불리는 이 상황은 기본적으로 코드 레벨의 수정없는 연동을 불가능하게 만들고, 이로 인하여 J2EE 환경의 이식성과 확장성에 심각한 제약을 가한다.

이 문제를 해결하기 위하여 JCA 스펙은 리소스 어댑터와 WAS 사이의 인터페이스와 상호작용을 확정하여 표준에 맞는 WAS와 리소스 어댑터라면 코드 레벨의 수정없이 상호 호환성 있게 동작하는 것을 목표로 발전되었다. 각 EIS 벤더마다의 커스텀 드라이버를 표준화된 아키텍처로 대체함으로써 이전에 발생하였던 N * M 연동 문제를 N + M으로 줄일 수 있게 되었다.

3. JCA와 Java EE의 관계

JCA는 Java EE(자카르타 EE)의 핵심 구성 요소 중 하나로, Java EE 애플리케이션 서버와 EIS 간의 표준 연결 방식을 정의한다. J2EE 1.3 기반의 웹 애플리케이션 서버는 JCA 1.0을 지원하였으나, J2EE 1.4에 이르러 인플로우 메시지 처리를 포함한 여러 가지 확장된 기능을 포함하여 JCA 1.5로 발전하게 되었다.

JCA는 JSR 16 (JCA 1.0), JSR 112 (JCA 1.5), JSR 322 (JCA 1.6) 버전을 포함하여 자바 커뮤니티 프로세스를 통해 개발되었다.

JCA API 역사
JCA version발표자바 플랫폼중요한 변화
JCA 1.6Java EE 6JSR 322
JCA 1.5Java EE 5JSR 112
JCA 1.0J2EE 1.3JSR 16



J2EE 버전 1.3은 애플리케이션 서버가 JCA 버전 1.0을 지원하도록 요구한다.

J2EE 버전 1.4는 애플리케이션 서버가 JCA 버전 1.5를 지원하도록 요구한다.

Java EE 버전 6은 애플리케이션 서버가 JCA 버전 1.6을 지원하도록 요구한다.

4. 계약 (Contracts)

자카르타 커넥터 아키텍처는 호환되는 애플리케이션 서버를 EIS에 연결하기 위한 표준을 정의한다. 이는 자카르타 EE 애플리케이션 서버와 리소스 어댑터 간의 표준 시스템 수준 계약 집합을 정의한다. J2EE 커넥터 아키텍처 버전 1.0에 의해 정의된 시스템 계약은 다음과 같다.


  • 연결 관리: 연결 관리는 애플리케이션 서버가 기본 EIS에 대한 연결 풀을 가능하게 하고 애플리케이션 구성 요소가 연결할 수 있도록 한다. 이는 많은 수의 클라이언트를 지원할 수 있는 확장 가능한 애플리케이션 환경을 이끌어낸다.

  • '''트랜잭션 관리''':


트랜잭션 관리를 통해 애플리케이션 서버는 트랜잭션 관리자를 사용하여 여러 리소스 관리자 간의 트랜잭션을 관리할 수 있다. 이 계약은 또한 외부 트랜잭션 관리자를 포함할 필요 없이 EIS 리소스 관리자 내에서 관리되는 데이터베이스 트랜잭션을 지원한다.

  • '''보안 관리''': 보안 관리는 EIS에 대한 보안 위협을 줄이고 EIS에서 관리하는 귀중한 정보 자원을 보호한다.


JCA 버전 1.5는 다음과 같이 사양에 시스템 계약을 추가한다.

  • '''수명 주기 관리''': 수명 주기 관리를 통해 애플리케이션 서버는 시작부터 업그레이드, 사용 중단에 이르기까지 리소스 어댑터의 수명 주기를 관리할 수 있다. 이 계약은 애플리케이션 서버가 배포 또는 애플리케이션 서버 시작 시 리소스 어댑터 인스턴스를 부트스트랩하고 철회 또는 정돈된 종료 시 리소스 어댑터 인스턴스에 알릴 수 있는 메커니즘을 제공한다.

  • '''작업 관리''': 작업 관리를 통해 리소스 어댑터는 실행을 위해 작업 인스턴스를 애플리케이션 서버에 제출하여 작업을 수행할 수 있다 (네트워크 엔드포인트 모니터링, 애플리케이션 구성 요소 호출 등). 애플리케이션 서버는 제출된 작업 인스턴스를 실행하기 위해 스레드를 디스패치한다. 이를 통해 리소스 어댑터는 스레드를 직접 생성하거나 관리하는 것을 피할 수 있으며, 애플리케이션 서버는 스레드를 효율적으로 풀링하고 런타임 환경을 더 잘 제어할 수 있다. 리소스 어댑터는 작업 인스턴스가 실행되는 트랜잭션 컨텍스트를 제어할 수 있다.

  • '''트랜잭션 유입 관리''': 트랜잭션 유입 관리를 통해 리소스 어댑터는 가져온 트랜잭션을 애플리케이션 서버로 전파할 수 있다. 이 계약은 또한 리소스 어댑터가 EIS에서 시작된 트랜잭션 완료 및 충돌 복구 호출을 전송할 수 있도록 하며, 가져온 트랜잭션의 원자성, 일관성, 격리성 및 지속성 (ACID) 속성이 유지되도록 한다.

  • '''메시지 유입 관리''': 메시지 유입 관리를 통해 리소스 어댑터는 메시지를 전달하는 데 사용되는 특정 메시징 스타일, 메시징 의미 체계 및 메시징 인프라와 관계없이 애플리케이션 서버에 있는 메시지 엔드포인트에 비동기적으로 메시지를 전달할 수 있다. 이 계약은 또한 다양한 메시지 공급자 (JMS, JAXM 등)가 리소스 어댑터를 사용하여 모든 Java EE 호환 애플리케이션 서버에 연결될 수 있도록 하는 표준 메시지 공급자 플러그 가능성 계약 역할을 한다.

4. 1. 연결 관리 (Connection Management)

자카르타 커넥터 아키텍처는 애플리케이션 서버가 기본 EIS에 대한 연결 풀을 가능하게 하고 애플리케이션 구성 요소가 연결할 수 있도록 한다. 이는 많은 수의 클라이언트를 지원할 수 있는 확장 가능한 애플리케이션 환경을 이끌어낸다.

4. 2. 트랜잭션 관리 (Transaction Management)

트랜잭션 관리를 통해 애플리케이션 서버는 트랜잭션 관리자를 사용하여 여러 리소스 관리자 간의 트랜잭션을 관리할 수 있다. 이 계약은 또한 외부 트랜잭션 관리자를 포함할 필요 없이 EIS 리소스 관리자 내에서 관리되는 데이터베이스 트랜잭션을 지원한다.

4. 3. 보안 관리 (Security Management)

보안 관리는 EIS에 대한 보안 위협을 줄이고 EIS에서 관리하는 정보 자원을 보호한다.

4. 4. 수명 주기 관리 (Lifecycle Management) (JCA 1.5 이상)

자카르타 커넥터 아키텍처(JCA) 1.5 버전부터는 수명 주기 관리 계약이 추가되어, 애플리케이션 서버가 리소스 어댑터의 수명 주기를 관리할 수 있게 되었다. 이를 통해 애플리케이션 서버는 배포 또는 시작 시 리소스 어댑터 인스턴스를 부트스트랩하고, 종료 시에는 리소스 어댑터 인스턴스에 알림을 제공하는 메커니즘을 갖는다.

4. 5. 작업 관리 (Work Management) (JCA 1.5 이상)

작업 관리를 통해 리소스 어댑터는 실행을 위해 작업 인스턴스를 애플리케이션 서버에 제출하여 작업을 수행할 수 있다(네트워크 엔드포인트 모니터링, 애플리케이션 구성 요소 호출 등). 애플리케이션 서버는 제출된 작업 인스턴스를 실행하기 위해 스레드를 디스패치한다. 이를 통해 리소스 어댑터는 스레드를 직접 생성하거나 관리하는 것을 피할 수 있으며, 애플리케이션 서버는 스레드를 효율적으로 풀링하고 런타임 환경을 더 잘 제어할 수 있다. 리소스 어댑터는 작업 인스턴스가 실행되는 트랜잭션 컨텍스트를 제어할 수 있다.

4. 6. 트랜잭션 유입 관리 (Transaction Inflow Management) (JCA 1.5 이상)

트랜잭션 유입 관리를 통해 리소스 어댑터는 가져온 트랜잭션을 애플리케이션 서버로 전파할 수 있다. 이 계약은 또한 리소스 어댑터가 EIS에서 시작된 트랜잭션 완료 및 충돌 복구 호출을 전송할 수 있도록 하며, 가져온 트랜잭션의 ACID 속성이 유지되도록 한다.

4. 7. 메시지 유입 관리 (Message Inflow Management) (JCA 1.5 이상)

자카르타 커넥터 아키텍처 1.5 버전에서 추가된 메시지 유입 관리는, 리소스 어댑터가 메시징 스타일, 의미 체계, 인프라와 관계없이 애플리케이션 서버의 메시지 엔드포인트에 비동기적으로 메시지를 전달할 수 있도록 지원한다. 이를 통해 다양한 메시지 공급자(JMS, JAXM 등)가 리소스 어댑터를 통해 Java EE 호환 애플리케이션 서버에 연결될 수 있다.

5. EIS 통합 (EIS Integration)

JCA 어댑터는 지벨 시스템즈(Siebel Systems), SAP, 그레이트 플레인스 시스템즈(Great Plains Systems), 오라클 애플리케이션즈(Oracle Applications) 등 다양한 전사적 정보 시스템(EIS)과 통합될 수 있다. 각 EIS는 자바, C++, .NET, Visual Basic 등 다양한 플랫폼과의 통합을 위한 API를 제공한다. 예를 들어, 지벨은 자바 데이터 빈(JDB) 인터페이스를 제공하고, 그레이트 플레인스 시스템즈는 eConnect 인터페이스를 제공하며, SAP는 SAP 자바 커넥터(SAP JCo) 인터페이스를 제공한다. JCA 어댑터는 이러한 API를 통해 EIS와 상호 작용한다.

6. 버전 역사

wikitable

JCA API 역사
JCA version발표자바 플랫폼중요한 변화
JCA 1.6Java EE 6JSR 322
JCA 1.5Java EE 5JSR 112
JCA 1.0J2EE 1.3JSR 16




본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com